/****************************************************
	文件：ABConfig.cs
	作者：HuskyT
	邮箱：1005240602@qq.com
	日期：2020/12/20 17:5:42
	功能：AB包配置表
*****************************************************/

using System.Collections.Generic;
using HTFW.Consts;
using UnityEngine;

namespace HTFW.ABBuilder
{
    [CreateAssetMenu(fileName = "ABConfig", menuName = MenuPath.CREATE_AB_CONFIG, order = 1)]
    public class ABConfig : ScriptableObject
    {
        //路径：基于Assets下的路径（eg：Assets/xxx/xxx...）

        #region 类型一：基于文件夹下所有单个文件进行打包（用于打包 Prefab）

        /*
         * 记录该情况下的所有文件夹的路径
         * 遍历文件夹下的Prefab，逐一打包
         * eg：Assets/GameData/Prefabs/Env/Grass
        */

        /// <summary>
        /// 文件夹路径列表（类型一：基于文件夹下所有单个文件进行打包，遍历文件夹下的单个文件逐个打包（用于打包 Prefab））
        /// </summary>
        [Space] [Header("文件夹路径列表（类型一：基于文件夹下所有单个文件进行打包，遍历文件夹下的单个文件逐个打包（用于打包 Prefab））")]
        public List<string> PrefabsFolderPathList = new List<string>();

        #endregion

        #region 类型二：基于文件夹进行打包（用于打包 Shader、Sound、Anim ...）

        /*
         * 记录文件夹的 Info：AB包名、文件夹路径（Assets/xxx...）
         * eg：ABName  music
         *     Path    Assets/GameData/Musics
        */

        /// <summary>
        /// 文件夹信息列表（类型二：基于文件夹进行打包（用于打包 Shader、Sound...））
        /// </summary>
        [Space] [Header("文件夹信息列表（类型二：基于文件夹进行打包（用于打包 Shader、Sound...））")]
        public List<FilesFolderInfo> FilesFolderInfoList = new List<FilesFolderInfo>();

        [System.Serializable]
        public struct FilesFolderInfo
        {
            /// <summary>
            /// AB 包名（小写字母）
            /// </summary>
            [Header("AB 包名（小写字母）")] public string ABName;

            /// <summary>
            /// 文件夹路径（Asset 下的路径）
            /// </summary>
            [Header("文件夹路径（Asset 下的路径）")] public string Path;
        }

        #endregion
    }
}